#!/bin/bash

# 定义API基础URL
API_BASE_URL="http://52.95.31.249:9000/api/1790/v1"

# 读取IP地址
response=$(curl -k "$API_BASE_URL/ping/ip/search")
echo "获取的响应: $response"  # 添加调试输出

ip_list=$(echo $response | jq -c '.[]')
if [ -z "$ip_list" ]; then
    echo "没有获取到任何IP地址"  # 添加日志输出
    exit 1  # 退出脚本
fi

# 初始化计数器
counter=0

# 计算IP地址总数
total_ips=$(echo $response | jq 'length')

# 遍历每个IP地址
for ip in $ip_list; do
    let counter+=1  # 增加计数器
    # echo "正在处理第 $counter 个IP地址"  # 显示当前是第几个IP地址
    echo "正在处理第 $counter / $total_ips 个IP地址"  # 显示当前是第几个IP地址

    id=$(echo $ip | jq -r '._id')
    ip_address=$(echo $ip | jq -r '."IP地址"')  # 使用引号处理中文字段名

    echo "正在ping $ip_address..."  # 添加日志输出

    # 执行ping命令
    ping -c 4 $ip_address > /dev/null 2>&1
    if [ $? -eq 0 ]; then
        status=1  # 设备状态正常
        packet_loss=2  # 丢包率合格
        network_status=1  # 网络状态通
        echo "$ip_address: 设备状态正常"  # 添加日志输出
    else
        status=2  # 设备状态异常
        packet_loss=1  # 丢包率丢包
        network_status=2  # 网络状态不通
        echo "$ip_address: 设备状态异常"  # 添加日志输出
    fi

    # 调用日志接口
    curl -kX POST "$API_BASE_URL/ping_log/add" -H "Content-Type: application/json" -d "{\"设备ID\":$id, \"设备状态\": $status, \"网络状态\":$network_status, \"丢包率\": $packet_loss}"
done